home *** CD-ROM | disk | FTP | other *** search
/ Practical Algorithms for Image Analysis / Practical Algorithms for Image Analysis.iso / LIBIMAGE / MISC.C < prev    next >
C/C++ Source or Header  |  1999-09-11  |  1KB  |  62 lines

  1. /* 
  2.  * misc.c
  3.  * 
  4.  * Practical Algorithms for Image Analysis
  5.  * 
  6.  * Copyright (c) 1999 SOS Software
  7.  */
  8.  
  9. /*
  10.  * Miscellaneous routines
  11.  */
  12.  
  13. #include "misc.h"
  14.  
  15. /*
  16.  * last_bs finds the last backslash character '\' in in_str
  17.  * It also converts in_str to lower case.
  18.  *
  19.  * This is useful for extracting out the program
  20.  * name in DOS-based environments.
  21.  *
  22.  */
  23.  
  24. char *
  25. last_bs (char *in_str)
  26. {
  27.   char *p;
  28.   int i;
  29.  
  30.   i = 0;
  31.   while (*(in_str + i) != '\0') {
  32.     *(in_str + i) = tolower (*(in_str + i));
  33.     i++;
  34.   }
  35.   /* get rid of .exe */
  36.   if ((p = strrchr (in_str, '.')))
  37.     *p = '\0';
  38.   if ((p = strrchr (in_str, '\\')) == NULL)
  39.     return in_str;
  40.   else
  41.     return ++p;
  42. }
  43.  
  44. /*
  45.  * readlin reads a line from stdin up to and
  46.  * including \n.  It then replaces \n with \0
  47.  * and returns the first character in buf.
  48.  * NOTE: this uses fgets instead of gets()
  49.  * because in some cases gets() can be unsecure.
  50.  */
  51.  
  52. int
  53. readlin (char *buf)
  54. {
  55.   char loc_buf[IN_BUF_LEN];
  56.  
  57.   fgets (loc_buf, IN_BUF_LEN, stdin);
  58.   loc_buf[strlen (loc_buf) - 1] = '\0';
  59.   strcpy (buf, loc_buf);
  60.   return (buf[0]);
  61. }
  62.